package com.fjec.market.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fjec.common.protocol.JsonResult;
import com.fjec.market.entity.InfoDeliveryAddress;

/**
 * <p>
 * 009.商户收货地址表 服务类
 * </p>
 *
 * @author admin
 * @since 2020-09-14
 */
public interface IInfoDeliveryAddressService extends IService<InfoDeliveryAddress> {

    /**
     * 增加地址
     *
     * @param userId   用户Id
     * @param busiType 商户类型
     * @param phone    联系电话
     * @param contact  联系人
     * @param prov     省行政编码
     * @param city     市行政编码
     * @param district 区行政编码
     * @param address1 省市区文字
     * @param address2 详细地址
     * @param defAddr  是否为默认
     * @return
     */
    JsonResult saveDeliveryAddress(Long userId, Integer busiType, String phone,
                                   String contact, String prov, String city, String district,
                                   String address1, String address2, Integer defAddr);

    /**
     * 删除地址
     *
     * @param id
     * @return
     */
    JsonResult deleteDeliveryAddress(Long id);

    /**
     * 更新地址
     *
     * @param id       主键Id
     * @param phone    联系电话
     * @param contact  联系人
     * @param prov     省行政编码
     * @param city     市行政编码
     * @param district 区行政编码
     * @param address1 省市区文字
     * @param address2 详细地址
     * @return
     */
    JsonResult updateDeliveryAddress(Long id, String phone, String contact, String prov,
                                     String city, String district, String address1, String address2);

    /**
     * 设置默认地址
     *
     * @param id
     * @return
     */
    JsonResult setDefaultDeliveryAddress(Long id);

    /**
     * 获取默认地址
     *
     * @return
     */
    JsonResult getDefaultDeliveryAddress() throws Exception;

    /**
     * 地址列表
     *
     * @param userId
     * @param busiType
     * @return
     * @throws Exception
     */
    JsonResult getDeliveryAddressList(Long userId, Integer busiType) throws Exception;

    /**
     * 根据Id获取地址
     *
     * @param id
     * @return
     * @throws Exception
     */
    JsonResult getDeliveryAddress(Long id) throws Exception;
}
